﻿using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using MIXer.Core.Contracts;
using MIXer.Core.Domain;

namespace MIXer.Providers
{
    [Export(typeof(IAvailableEventsProvider))]
    public class AvailableEventsProvider : IAvailableEventsProvider
    {
        #region Constructors
        public AvailableEventsProvider()
        {
            AvailableEvents = new List<TechEvent>
            {
                new TechEvent { EventCode = "MIX11", EventFriendlyName = "MIX 2011", Type = TechEventType.MIX, StartDate = new DateTime(2011, 4, 12), EndDate = new DateTime(2011, 4, 14), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/MIX/MIX11/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/MIX/MIX11/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/MIX/MIX11/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/MIX/MIX11/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/MIX/MIX11/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "tdbea2011", EventFriendlyName = "TechDays 2011 Belgium", Type = TechEventType.TechDays, StartDate = new DateTime(2011, 4, 26), EndDate = new DateTime(2011, 4, 28), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Belgium/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "tena2011", EventFriendlyName = "Tech·Ed North America 2011", Type = TechEventType.TechEd, StartDate = new DateTime(2011, 5, 16), EndDate = new DateTime(2011, 5, 19), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "TechDays-2011-Bosnia-and-Herzegovina", EventFriendlyName = "TechDays 2011 Bosnia and Herzegovina", Type = TechEventType.TechDays, StartDate = new DateTime(2011, 5, 26), EndDate = new DateTime(2011, 5, 27), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Bosnia-and-Herzegovina/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Bosnia-and-Herzegovina/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Bosnia-and-Herzegovina/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Bosnia-and-Herzegovina/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Bosnia-and-Herzegovina/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2011-Bosnia-and-Herzegovina/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "mvcConf-Japan", EventFriendlyName = "mvcConf @:Japan - ASP.NET MVC Boot Camp", Type = TechEventType.aspConf, StartDate = new DateTime(2011, 6, 11), EndDate = new DateTime(2011, 6, 11), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/mvcConf/Japan/mvcConf-Japan/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/mvcConf/Japan/mvcConf-Japan/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/mvcConf/Japan/mvcConf-Japan/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/mvcConf/Japan/mvcConf-Japan/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/mvcConf/Japan/mvcConf-Japan/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/mvcConf/Japan/mvcConf-Japan/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "Belgian-Community-Day-2011", EventFriendlyName = "Belgian Community Day 2011", Type = TechEventType.CommunityDay, StartDate = new DateTime(2011, 6, 23), EndDate = new DateTime(2011, 6, 24), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/Belgian-Community-Day/Belgian-Community-Day-2011/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/Belgian-Community-Day/Belgian-Community-Day-2011/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/Belgian-Community-Day/Belgian-Community-Day-2011/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/Belgian-Community-Day/Belgian-Community-Day-2011/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/Belgian-Community-Day/Belgian-Community-Day-2011/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/Belgian-Community-Day/Belgian-Community-Day-2011/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "Tech-Ed-NewZealand-2011", EventFriendlyName = "Tech·Ed New Zealand 2011", Type = TechEventType.TechEd, StartDate = new DateTime(2011, 8, 24), EndDate = new DateTime(2011, 8, 26), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/2011/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/2011/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/2011/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/2011/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/2011/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/2011/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "Tech-Ed-Australia-2011", EventFriendlyName = "Tech·Ed Australia 2011", Type = TechEventType.TechEd, StartDate = new DateTime(2011, 8, 30), EndDate = new DateTime(2011, 9, 2), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "BUILD2011", EventFriendlyName = "BUILD 2011", Type = TechEventType.BUILD, StartDate = new DateTime(2011, 9, 13), EndDate = new DateTime(2011, 9, 16), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/BUILD2011/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/BUILD2011/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/BUILD2011/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/BUILD2011/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/BUILD2011/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/BUILD2011/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "tdbea2012", EventFriendlyName = "TechDays 2012 Belgium", Type = TechEventType.TechDays, StartDate = new DateTime(2012, 2, 14), EndDate = new DateTime(2012, 2, 16), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "tdnth2012", EventFriendlyName = "TechDays 2012 the Netherlands", Type = TechEventType.TechDays, StartDate = new DateTime(2012, 2, 16), EndDate = new DateTime(2012, 2, 17), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "tena2012", EventFriendlyName = "Tech·Ed North America 2011", Type = TechEventType.TechEd, StartDate = new DateTime(2012, 6, 11), EndDate = new DateTime(2012, 6, 14), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "teeu2012", EventFriendlyName = "Tech·Ed Europe 2012", Type = TechEventType.TechEd, StartDate = new DateTime(2012, 6, 26), EndDate = new DateTime(2012, 6, 29), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Europe/2012/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Europe/2012/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Europe/2012/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Europe/2012/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Europe/2012/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Europe/2012/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "aspConf2012", EventFriendlyName = "aspConf 2012", Type = TechEventType.aspConf, StartDate = new DateTime(2012, 7, 17), EndDate = new DateTime(2012, 7, 17), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/aspConf/aspConf/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/aspConf/aspConf/2012/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/aspConf/aspConf/2012/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/aspConf/aspConf/2012/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/aspConf/aspConf/2012/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/aspConf/aspConf/2012/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "tenz2012", EventFriendlyName = "Tech·Ed New Zeland 2012", Type = TechEventType.TechEd, StartDate = new DateTime(2012, 9, 4), EndDate = new DateTime(2012, 9, 7), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/NewZealand/TechEd-New-Zealand-2012/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/NewZealand/TechEd-New-Zealand-2012/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/NewZealand/TechEd-New-Zealand-2012/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/NewZealand/TechEd-New-Zealand-2012/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/NewZealand/TechEd-New-Zealand-2012/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/NewZealand/TechEd-New-Zealand-2012/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "teau2012", EventFriendlyName = "Tech·Ed Australia 2012", Type = TechEventType.TechEd, StartDate = new DateTime(2012, 9, 11), EndDate = new DateTime(2012, 9, 14), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/2012/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/2012/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/2012/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/2012/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/2012/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/TechEd/Australia/2012/RSS/mp4high") }
                }},
                new TechEvent { EventCode = "BUILD2012", EventFriendlyName = "BUILD 2012", Type = TechEventType.BUILD, StartDate = new DateTime(2012, 10, 30), EndDate = new DateTime(2012, 11, 2), Links = new List<TechEventDownloadUrl> {
                    new TechEventDownloadUrl { Description = "WMV files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/2012/RSS/wmv") },
                    new TechEventDownloadUrl { Description = "WMV High files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/2012/RSS/wmvhigh") },
                    new TechEventDownloadUrl { Description = "MP3 Audio files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/2012/RSS/mp3") },
                    new TechEventDownloadUrl { Description = "Zune files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/2012/RSS/zune") },
                    new TechEventDownloadUrl { Description = "MP4 Low files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/2012/RSS/mp4") },
                    new TechEventDownloadUrl { Description = "MP4 High files", Address = new Uri("http://channel9.msdn.com/Events/BUILD/2012/RSS/mp4high") }
                }},
            };
        }
        #endregion

        #region Properties
        public IList<TechEvent> AvailableEvents { get; private set; }
        #endregion
    }
}
